// @Description
// @Author  xiaoyang
// @Date  2023/4/28 2:45 下午

package dao

import "time"

/**
 *  @Author yang
 *  @Description 延时任务列表 (后面可以考虑添加：定时 和 手动执行机制)
**/
type DelayedQueueTable struct {
	Id           int       `json:"id" gorm:"primary_key" description:"自增主键"`
	TaskId       string    `json:"task_id" gorm:"column:task_id" description:"任务Id"`
	TaskName     string    `json:"task_name" gorm:"column:task_name" description:"任务名称"`
	FromSystem   string    `json:"from_system" gorm:"column:from_system" description:"来源系统"`
	FromApi      string    `json:"from_api" gorm:"column:from_api" description:"来源API"`
	Expires      int       `json:"expires" gorm:"column:expires" description:"延时时间"`
	Detail       string    `json:"detail" gorm:"column:detail" description:"详情"`
	Data         string    `json:"data" gorm:"column:data" description:"任务内容"`
	Result       int64     `json:"result" gorm:"column:result" description:"执行结果（0：未执行；1：执行成功；2：执行失败）"`
	DealWithType int64     `json:"deal_with_type" gorm:"column:deal_with_type" description:"执行方式（0：未执行；1：延时队列；2：手动执行；3：定时任务）"`
	ResponseData string    `json:"response_data" gorm:"column:response_data" description:"响应结果"`
	DealWithAt   time.Time `json:"deal_with_at" gorm:"column:deal_with_at; default:null" description:"执行时间"`
	CreatedAt    time.Time `json:"create_at" gorm:"column:create_at" description:"创建时间"`
	UpdatedAt    time.Time `json:"update_at" gorm:"column:update_at" description:"更新时间"`
	DeletedAt    time.Time `json:"deleted_at" gorm:"column:deleted_at; default:null" description:"删除时间"`
}

func (dq *DelayedQueueTable) TableName() string {
	return "delayed_queue"
}
